//package org.jeecg.modules.saledetail;
//
//import java.util.regex.Matcher;
//import java.util.regex.Pattern;
//
//import java.util.Random;
//import java.util.regex.Matcher;
//import java.util.regex.Pattern;
//
//    public class LotterySystem {
//        // Other code remains the same...
//
//        private static final String[] NAME = {
//                "荣耀水晶",
//                "钻石",
//                "浓情玫瑰",
//                "局内特效自选礼包",
//                "[英雄]花木兰",
//                "[英雄]钟馗",
//                "[皮肤]偶像歌手",
//                "[皮肤]幻想奇妙夜",
//                "皮肤碎片",
//                "英雄碎片",
//                "铭文碎片"
//        };
//
//        private static final double LUCK_ADD = 600.0;
//
//        private int luck;
//        private double[] normalWeight;
//        private int times;
//        private int cost;
//        private Result result;
//
//        public LotterySystem() {
//            luck = 0;
//            normalWeight = initWeight(NORMAL_WEIGHT);
//            times = 0;
//            cost = 0;
//            result = new Result();
//        }
//
//        private double[] initWeight(double[][] weight) {
//            double[] result = new double[weight.length];
//            for (int i = 0; i < weight.length; i++) {
//                if (weight[i][1].equals("GRAND_PRIZE")) {
//                    weight[i][0] -= LUCK_ADD * (weight.length - 1) / 2;
//                } else {
//                    weight[i][0] += LUCK_DEL * (weight.length - 1) / 2;
//                }
//                result[i] = weight[i][0];
//            }
//            return result;
//        }
//
//        private int weightedRandom(double[] weights) {
//            double total = 0;
//            for (double weight : weights) {
//                total += weight;
//            }
//            Random random = new Random();
//            double n = random.nextDouble() * total;
//
//            for (int i = 0; i < weights.length; i++) {
//                if (n < weights[i]) {
//                    return i;
//                }
//                n -= weights[i];
//            }
//            return -1;
//        }
//
//        private String getRandomReward() {
//            Random random = new Random();
//            double[] weights = normalWeight;
//            int index = weightedRandom(weights);
//
//            String reward;
//            if (index == -1) {
//                reward = "GRAND_PRIZE";
//            } else if (index == 7) {
//                reward = SPECIAL_SHARD[random.nextInt(SPECIAL_SHARD.length)];
//            } else if (index == 9) {
//                reward = "POSY" + weightedRandom(POSY_WEIGHT) + 1;
//            } else {
//                reward = NAME[index];
//            }
//            return reward;
//        }
//
//        public void addLuck() {
//            luck = (luck + 1) % normalWeight.length;
//            for (int i = 0; i < normalWeight.length; i++) {
//                if (NAME[i].equals("荣耀水晶")) {
//                    normalWeight[i] += LUCK_ADD;
//                } else {
//                    normalWeight[i] -= LUCK_DEL;
//                }
//            }
//        }
//
//        public String run(boolean oneTimes) {
//            if (oneTimes) {
//                cost += 60;
//                times++;
//                addLuck();
//                String reward = getRandomReward();
//                result.add(reward);
//                return reward;
//            } else {
//                for (int i = 0; i < 5; i++) {
//                    cost += 270;
//                    times++;
//                    addLuck();
//                    String reward = getRandomReward();
//                    result.add(reward);
//                }
//                return "共获得：\n" +
//                        "钻石 x " + result.diamond + "\n" +
//                        "荣耀水晶 x " + result.grandPrize + "\n" +
//                        "英雄碎片 x " + result.actorShard + "\n" +
//                        "皮肤碎片 x " + result.skinShard + "\n" +
//                        "POSY x " + result.posy;
//            }
//        }
//
//        public int getLuck() {
//            return luck;
//        }
//
//        public int getTimes() {
//            return times;
//        }
//
//        public int getCost() {
//            return cost;
//        }
///**/
//        private static class Result {
//            private int diamond;
//            private int grandPrize;
//            private int actorShard;
//            private int skinShard;
//            private int posy;
//
//            public void add(String reward) {
//                int plus = getNumberFromString(reward);
//                switch (reward) {
//                    case "钻石":
//                        diamond += plus;
//                        break;
//                    case "GRAND_PRIZE":
//                        grandPrize += plus;
//                        break;
//                    case "皮肤碎片":
//                        skinShard += plus;
//                        break;
//                    case "英雄碎片":
//                        actorShard += plus;
//                        break;
//                    case "POSY":
//                        posy += plus;
//                        break;
//                }
//            }
//
//            private int getNumberFromString(String str) {
//                Pattern pattern = Pattern.compile("\\d+");
//                Matcher matcher = pattern.matcher(str);
//                if (matcher.find()) {
//                    return Integer.parseInt(matcher.group());
//                }
//                return 0;
//            }
//        }
//    }
//}
